#pragma once
#include "Czasteczka.h"
#include "headers.h"


Czasteczka::Czasteczka(D3DXVECTOR3 wektor)
{
	bufor = NULL;
	g_pd3dDevice->CreateVertexBuffer(sizeof(CUSTOMPOINT), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY 
		                            | D3DUSAGE_POINTS, D3DFVF_CUSTOMPOINT, D3DPOOL_DEFAULT, &bufor, NULL);
	CUSTOMPOINT * wierzcholek;
	bufor->Lock(0, sizeof(CUSTOMPOINT), (void**)&wierzcholek, D3DLOCK_DISCARD);
			wierzcholek->pozycja = wektor;
		    wierzcholek->color = D3DCOLOR_ARGB(255,255,255,255);
	bufor->Unlock();
}

void Czasteczka::UstawKordy(float x, float y, float z)
{
	if (bufor != NULL) 
	{ 
		bufor->Release(); 
		bufor = NULL; 
	}
	g_pd3dDevice->CreateVertexBuffer(sizeof(CUSTOMPOINT), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY 
		                            | D3DUSAGE_POINTS, D3DFVF_CUSTOMPOINT, D3DPOOL_DEFAULT, &bufor, NULL);
	CUSTOMPOINT * wierzcholek;
	bufor->Lock(0, sizeof(CUSTOMPOINT), (void**)&wierzcholek, D3DLOCK_DISCARD);
			wierzcholek->pozycja.x = x;
			wierzcholek->pozycja.y = y;
			wierzcholek->pozycja.z = z;
		    wierzcholek->color = D3DCOLOR_ARGB(255,255,255,255);//DUPA
	bufor->Unlock();
}

void Czasteczka::Randomuj()
{
	float k;
	time_t t; 
	srand((unsigned) time(&t)); 
	k = ((float)((rand()%10 - 5.0)))/200.0; 

	CUSTOMPOINT * wierzcholek;
	bufor->Lock(0, sizeof(CUSTOMPOINT), (void**)&wierzcholek, D3DLOCK_DISCARD);
	if((int)(wierzcholek->pozycja.x *10) % 2 == 0)
	{
			wierzcholek->pozycja.x += k;
			wierzcholek->pozycja.y += k;
			wierzcholek->pozycja.z += k;
	}
	else
	{
			wierzcholek->pozycja.x -= k;
			wierzcholek->pozycja.y -= k;
			wierzcholek->pozycja.z -= k;	
	}
	wierzcholek->color = D3DCOLOR_ARGB(5,55,0,0);
	bufor->Unlock();
}

void Czasteczka::Rysuj()
{
	g_pd3dDevice->SetStreamSource(0, bufor, 0, sizeof(CUSTOMPOINT));
	g_pd3dDevice->DrawPrimitive(D3DPT_POINTLIST, 0, 1);				// rysuj jeden dymek kurwiszka
}



Czasteczka::Czasteczka(void)
{
	bufor = NULL;

}


Czasteczka::~Czasteczka(void)
{
	if (bufor != NULL) 
	{ 
		bufor->Release(); 
		bufor = NULL; 
	}
}